package com.sky.mapper;

import com.sky.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.Map;

@Mapper
public interface UserMapper {
    /**
     * 根据openid查询用户对象
     *
     * @param openid openid
     * @return 用户对象
     */
    @Select("SELECT * FROM user WHERE openid = #{openid}")
    User getByOpenId(String openid);

    /**
     * 插入用户数据
     *
     * @param user 用户对象
     */
    void insert(User user);

    /**
     * 根据主键查询用户
     *
     * @param id 主键id
     * @return 用户信息
     */
    @Select("SELECT * FROM user WHERE id = #{id}")
    User getById(Long id);

    /**
     * 根据动态条件统计用户总量
     *
     * @param map 数据
     * @return 用户总量
     */
    Integer countByMap(Map<String, Object> map);
}
